<template>
    <div>
      <span>全选:</span>
      <input type="checkbox" v-model="isall" />
      <button @click="str">反选</button>
      <ul>
        <li v-for="(item, index) in arr" :key="index">
          <input type="checkbox" v-model="item.c" />
          <span>{{ item.name }}</span>
        </li>
      </ul>
    </div>
  </template>
  
  <script>
  export default {
    data() {
      return {
        arr: [
          {
            name: "猪八戒",
            c: false,
          },
          {
            name: "孙悟空",
            c: false,
          },
          {
            name: "唐僧",
            c: false,
          },
          {
            name: "白龙马",
            c: false,
          },
        ],
      };
    },
    computed: {
      isall: {
        set(val) {
          // 全选框影响 小选框
          this.arr.forEach((item) => (item.c = val));
        },
        get() {
          //因为eveny 只有满足 ture 才会执行 不然返回fales
          return this.arr.every((item) => item.c);
          
        },
      },
    },methods:{
      str(){
        //反选
        this.arr.forEach(item=>item.c=!item.c)
      }
    }
  };
  </script>